package utils.screenCtrl;

import java.util.List;

/**
 * 子类：ScreenCtrlLinux
 * 子类调用事例 -- ScreenCtrlLinux.getAllWindowStatusStatic() -- new ScreenCtrlLinux().getAllWindowStatus()
 */
public interface ScreenCtrl {
    /**
     * @return {@code List<WindowStatus>}
     * 获取当前所有窗口的状态
     */
    List<WindowStatus> getAllWindowStatus();

    /**
     * @return {@code List<WindowStatus>}
     * 获取当前所有窗口
     */
    List<WindowStatus> getAllWindow();

    /**
     * @return WindowStatus
     * 获取用户鼠标选择的窗口的状态
     */
    WindowStatus getSelectWindowStatus();

    /**
     * @param id 窗口编号
     * @param g 指定为数字的重力
     * @param x 窗口左边界距离屏幕左边界的距离
     * @param y 窗口左边界距离屏幕左边界的距离
     * @param width 窗口的宽度
     * @param height 窗口的高度
     */
    void moveWindowTo(String id,int g,int x,int y,int width,int height);

    /**
     * @param id 窗口编号
     * @param x 窗口左边界距离屏幕左边界的距离
     * @param y 窗口左边界距离屏幕左边界的距离
     * @param width 窗口的宽度
     * @param height 窗口的高度
     */
    void moveWindowTo(String id,int x,int y,int width,int height);

    /**
     * @return WindowStatus
     * 获取桌面的状态信息
     */
    WindowStatus getDeskWindowStatus();

    /**
     * @return MouseLocation 返回鼠标的位置
     */
    MouseLocation getMouseLocation();
}